// 枚举类型
export default {}

// 比如 电商里面的订单状态：
// enum 关键字表示声明一个枚举类型的对象， 对象首字母大写
// 枚举对象里面，每一个属性的值，都是一次递增的, 没有指定一个起始值，就从0开始。
//如果给中间一个属性赋值，则后面的属性的值在此值的基础上递增。
enum OrderState {
  '已发货' =1,
  '已收货' ,
  '未发货',
  '已签收' =5, //如果给中间一个属性赋值，则后面的属性的值在此值的基础上递增。
  '未支付',
  '已支付'
}

console.log(OrderState);
// 枚举对象中的key:value的格式; value:key也可以表示枚举对象.
// {
//   '1': '已发货',
//   '2': '已收货',
//   '3': '未发货',
//   '4': '已签收',
//   '5': '未支付',
//   '6': '已支付',
//   '已发货': 1,  
//   '已收货': 2,  
//   '未发货': 3,  
//   '已签收': 4,  
//   '未支付': 5,  
//   '已支付': 6   
// }


let res:{data:{payState:number, c_name:string, sex: boolean, age: number}} = {data: {payState: 3, c_name:'张荣平', sex: true, age: 23}}

let payState: number = 1

// 也可以通过枚举对象的属性的值，反向获取到与这个值有关的枚举对象的属性名。
payState = res.data.payState;

console.log(OrderState[1]); // 已发货 ,通过指获取Key
console.log(OrderState['已发货']) // 1 ，通过key，获取值
console.log(OrderState[payState]); //未发货


// 医生职称：
enum DoctorJoin {
  '医士' = 1 ,
  '副主治医生',
  '主治医生',
  '副主任医生',
  '主任医生'
}
// 性别
enum Sex {
  women, // 女  0
  man  // 男  1 
}

// 案例：
let str = `<tr>
<td>${res.data.c_name}</td>
<td>${res.data.sex}</td>
<td>${res.data.age}</td>
<td>${OrderState[res.data.payState]}</td>
</tr>`
console.log(str);
